<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Discovery and cluster formation settings | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="settings.html" title="Configuring Elasticsearch">
<link rel="prev" href="ccr-settings.html" title="Cross-cluster replication settings">
<link rel="next" href="modules-fielddata.html" title="Field data cache settings">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="setup.html">Set up Elasticsearch</a></span>
»
<span class="breadcrumb-link"><a href="settings.html">Configuring Elasticsearch</a></span>
»
<span class="breadcrumb-node">Discovery and cluster formation settings</span>
</div>
<div class="navheader">
<span class="prev">
<a href="ccr-settings.html">« Cross-cluster replication settings</a>
</span>
<span class="next">
<a href="modules-fielddata.html">Field data cache settings »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="modules-discovery-settings"></a>Discovery and cluster formation settings<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/discovery/discovery-settings.asciidoc">edit</a>
</h2>
</div></div></div>
<p><a class="xref" href="modules-discovery.html" title="Discovery and cluster formation">Discovery and cluster formation</a> are affected by the
following settings:</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">discovery.seed_hosts</code>
</span>
</dt>
<dd>
<p>Provides a list of the addresses of the master-eligible nodes in the cluster.
May also be a single string containing the addresses separated by commas. Each
address has the format <code class="literal">host:port</code> or <code class="literal">host</code>. The <code class="literal">host</code> is either a host name
to be resolved by DNS, an IPv4 address, or an IPv6 address. IPv6 addresses
must be enclosed in square brackets. If a host name resolves via DNS to multiple
addresses, Elasticsearch uses all of them. DNS lookups are subject to
<a class="xref" href="networkaddress-cache-ttl.html" title="DNS cache settings">JVM DNS caching</a>. If the <code class="literal">port</code> is not given then it
is determined by checking the following settings in order:</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
<code class="literal">transport.profiles.default.port</code>
</li>
<li class="listitem">
<code class="literal">transport.port</code>
</li>
</ol>
</div>
<p>If neither of these is set then the default port is <code class="literal">9300</code>. The default value
for <code class="literal">discovery.seed_hosts</code> is <code class="literal">["127.0.0.1", "[::1]"]</code>. See <a class="xref" href="discovery-settings.html#unicast.hosts" title="discovery.seed_hosts"><code class="literal">discovery.seed_hosts</code></a>.</p>
<p>This setting was previously known as <code class="literal">discovery.zen.ping.unicast.hosts</code>. Its
old name is deprecated but continues to work in order to preserve backwards
compatibility. Support for the old name will be removed in a future version.</p>
</dd>
<dt>
<span class="term">
<code class="literal">discovery.seed_providers</code>
</span>
</dt>
<dd>
Specifies which types of <a class="xref" href="modules-discovery-hosts-providers.html#built-in-hosts-providers" title="Seed hosts providers">seed hosts provider</a> to
use to obtain the addresses of the seed nodes used to start the discovery
process. By default, it is the
<a class="xref" href="modules-discovery-hosts-providers.html#settings-based-hosts-provider" title="Settings-based seed hosts provider">settings-based seed hosts provider</a> which
obtains the seed node addresses from the <code class="literal">discovery.seed_hosts</code> setting.
This setting was previously known as <code class="literal">discovery.zen.hosts_provider</code>. Its old
name is deprecated but continues to work in order to preserve backwards
compatibility. Support for the old name will be removed in a future version.
</dd>
<dt>
<span class="term">
<code class="literal">discovery.type</code>
</span>
</dt>
<dd>
Specifies whether Elasticsearch should form a multiple-node cluster. By default, Elasticsearch
discovers other nodes when forming a cluster and allows other nodes to join
the cluster later. If <code class="literal">discovery.type</code> is set to <code class="literal">single-node</code>, Elasticsearch forms a
single-node cluster and suppresses the timeouts set by
<code class="literal">cluster.publish.timeout</code> and <code class="literal">cluster.join.timeout</code>. For more information
about when you might use this setting, see <a class="xref" href="bootstrap-checks.html#single-node-discovery" title="Single-node discovery">Single-node discovery</a>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.initial_master_nodes</code>
</span>
</dt>
<dd>
Sets the initial set of master-eligible nodes in a brand-new cluster. By
default this list is empty, meaning that this node expects to join a cluster
that has already been bootstrapped. See <a class="xref" href="discovery-settings.html#initial_master_nodes" title="cluster.initial_master_nodes"><code class="literal">cluster.initial_master_nodes</code></a>.
</dd>
</dl>
</div>
<h4>
<a id="_expert_settings"></a>Expert settings<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/modules/discovery/discovery-settings.asciidoc">edit</a>
</h4>
<p>Discovery and cluster formation are also affected by the following
<em>expert-level</em> settings, although it is not recommended to change any of these
from their default values.</p>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>If you adjust these settings then your cluster may not form correctly
or may become unstable or intolerant of certain failures.</p>
</div>
</div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">discovery.cluster_formation_warning_timeout</code>
</span>
</dt>
<dd>
Sets how long a node will try to form a cluster before logging a warning
that the cluster did not form. Defaults to <code class="literal">10s</code>. If a cluster has not
formed after <code class="literal">discovery.cluster_formation_warning_timeout</code> has elapsed then
the node will log a warning message that starts with the phrase <code class="literal">master not
discovered</code> which describes the current state of the discovery process.
</dd>
<dt>
<span class="term">
<code class="literal">discovery.find_peers_interval</code>
</span>
</dt>
<dd>
Sets how long a node will wait before attempting another discovery round.
Defaults to <code class="literal">1s</code>.
</dd>
<dt>
<span class="term">
<code class="literal">discovery.probe.connect_timeout</code>
</span>
</dt>
<dd>
Sets how long to wait when attempting to connect to each address. Defaults
to <code class="literal">3s</code>.
</dd>
<dt>
<span class="term">
<code class="literal">discovery.probe.handshake_timeout</code>
</span>
</dt>
<dd>
Sets how long to wait when attempting to identify the remote node via a
handshake. Defaults to <code class="literal">1s</code>.
</dd>
<dt>
<span class="term">
<code class="literal">discovery.request_peers_timeout</code>
</span>
</dt>
<dd>
Sets how long a node will wait after asking its peers again before
considering the request to have failed. Defaults to <code class="literal">3s</code>.
</dd>
<dt>
<span class="term">
<code class="literal">discovery.seed_resolver.max_concurrent_resolvers</code>
</span>
</dt>
<dd>
Specifies how many concurrent DNS lookups to perform when resolving the
addresses of seed nodes. Defaults to <code class="literal">10</code>. This setting was previously
known as <code class="literal">discovery.zen.ping.unicast.concurrent_connects</code>. Its old name is
deprecated but continues to work in order to preserve backwards
compatibility. Support for the old name will be removed in a future
version.
</dd>
<dt>
<span class="term">
<code class="literal">discovery.seed_resolver.timeout</code>
</span>
</dt>
<dd>
Specifies how long to wait for each DNS lookup performed when resolving the
addresses of seed nodes. Defaults to <code class="literal">5s</code>. This setting was previously
known as <code class="literal">discovery.zen.ping.unicast.hosts.resolve_timeout</code>. Its old name
is deprecated but continues to work in order to preserve backwards
compatibility. Support for the old name will be removed in a future
version.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.auto_shrink_voting_configuration</code>
</span>
</dt>
<dd>
Controls whether the <a class="xref" href="modules-discovery-voting.html" title="Voting configurations">voting configuration</a>
sheds departed nodes automatically, as long as it still contains at least 3
nodes. The default value is <code class="literal">true</code>. If set to <code class="literal">false</code>, the voting
configuration never shrinks automatically and you must remove departed
nodes manually with the <a class="xref" href="voting-config-exclusions.html" title="Voting configuration exclusions API">voting configuration
exclusions API</a>.
</dd>
<dt>
<span class="term">
<a id="master-election-settings"></a><code class="literal">cluster.election.back_off_time</code>
</span>
</dt>
<dd>
Sets the amount to increase the upper bound on the wait before an election
on each election failure. Note that this is <em>linear</em> backoff. This defaults
to <code class="literal">100ms</code>. Changing this setting from the default may cause your cluster
to fail to elect a master node.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.election.duration</code>
</span>
</dt>
<dd>
Sets how long each election is allowed to take before a node considers it
to have failed and schedules a retry. This defaults to <code class="literal">500ms</code>.  Changing
this setting from the default may cause your cluster to fail to elect a
master node.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.election.initial_timeout</code>
</span>
</dt>
<dd>
Sets the upper bound on how long a node will wait initially, or after the
elected master fails, before attempting its first election. This defaults
to <code class="literal">100ms</code>. Changing this setting from the default may cause your cluster
to fail to elect a master node.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.election.max_timeout</code>
</span>
</dt>
<dd>
Sets the maximum upper bound on how long a node will wait before attempting
an first election, so that an network partition that lasts for a long time
does not result in excessively sparse elections. This defaults to <code class="literal">10s</code>.
Changing this setting from the default may cause your cluster to fail to
elect a master node.
</dd>
<dt>
<span class="term">
<a id="fault-detection-settings"></a><code class="literal">cluster.fault_detection.follower_check.interval</code>
</span>
</dt>
<dd>
Sets how long the elected master waits between follower checks to each
other node in the cluster. Defaults to <code class="literal">1s</code>. Changing this setting from the
default may cause your cluster to become unstable.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.follower_check.timeout</code>
</span>
</dt>
<dd>
Sets how long the elected master waits for a response to a follower check
before considering it to have failed. Defaults to <code class="literal">10s</code>. Changing this
setting from the default may cause your cluster to become unstable.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.follower_check.retry_count</code>
</span>
</dt>
<dd>
Sets how many consecutive follower check failures must occur to each node
before the elected master considers that node to be faulty and removes it
from the cluster. Defaults to <code class="literal">3</code>. Changing this setting from the default
may cause your cluster to become unstable.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.leader_check.interval</code>
</span>
</dt>
<dd>
Sets how long each node waits between checks of the elected master.
Defaults to <code class="literal">1s</code>. Changing this setting from the default may cause your
cluster to become unstable.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.leader_check.timeout</code>
</span>
</dt>
<dd>
Sets how long each node waits for a response to a leader check from the
elected master before considering it to have failed. Defaults to <code class="literal">10s</code>.
Changing this setting from the default may cause your cluster to become
unstable.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.leader_check.retry_count</code>
</span>
</dt>
<dd>
Sets how many consecutive leader check failures must occur before a node
considers the elected master to be faulty and attempts to find or elect a
new master. Defaults to <code class="literal">3</code>. Changing this setting from the default may
cause your cluster to become unstable.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.follower_lag.timeout</code>
</span>
</dt>
<dd>
Sets how long the master node waits to receive acknowledgements for cluster
state updates from lagging nodes. The default value is <code class="literal">90s</code>. If a node
does not successfully apply the cluster state update within this period of
time, it is considered to have failed and is removed from the cluster. See
<a class="xref" href="cluster-state-publishing.html" title="Publishing the cluster state">Publishing the cluster state</a>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.join.timeout</code>
</span>
</dt>
<dd>
Sets how long a node will wait after sending a request to join a cluster
before it considers the request to have failed and retries, unless
<code class="literal">discovery.type</code> is set to <code class="literal">single-node</code>. Defaults to <code class="literal">60s</code>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.max_voting_config_exclusions</code>
</span>
</dt>
<dd>
Sets a limit on the number of voting configuration exclusions at any one
time. The default value is <code class="literal">10</code>. See
<a class="xref" href="modules-discovery-adding-removing-nodes.html" title="Adding and removing nodes">Adding and removing nodes</a>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.publish.info_timeout</code>
</span>
</dt>
<dd>
Sets how long the master node waits for each cluster state update to be
completely published to all nodes before logging a message indicating that
some nodes are responding slowly. The default value is <code class="literal">10s</code>.
</dd>
<dt>
<span class="term">
<code class="literal">cluster.publish.timeout</code>
</span>
</dt>
<dd>
Sets how long the master node waits for each cluster state update to be
completely published to all nodes, unless <code class="literal">discovery.type</code> is set to
<code class="literal">single-node</code>. The default value is <code class="literal">30s</code>. See <a class="xref" href="cluster-state-publishing.html" title="Publishing the cluster state">Publishing the cluster state</a>.
</dd>
<dt>
<span class="term">
<a id="no-master-block"></a><code class="literal">cluster.no_master_block</code>
</span>
</dt>
<dd>
<p>
Specifies which operations are rejected when there is no active master in a
cluster. This setting has two valid values:
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">all</code>
</span>
</dt>
<dd>
All operations on the node (both read and write operations) are rejected.
This also applies for API cluster state read or write operations, like the get
index settings, put mapping and cluster state API.
</dd>
<dt>
<span class="term">
<code class="literal">write</code>
</span>
</dt>
<dd>
(default) Write operations are rejected. Read operations succeed,
based on the last known cluster configuration. This situation may result in
partial reads of stale data as this node may be isolated from the rest of the
cluster.
</dd>
</dl>
</div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
The <code class="literal">cluster.no_master_block</code> setting doesn’t apply to nodes-based APIs
(for example, cluster stats, node info, and node stats APIs). Requests to these
APIs are not be blocked and can run on any available node.
</li>
<li class="listitem">
For the cluster to be fully operational, it must have an active master.
</li>
</ul>
</div>
</div>
</div>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>This setting replaces the <code class="literal">discovery.zen.no_master_block</code> setting in
earlier versions. The <code class="literal">discovery.zen.no_master_block</code> setting is ignored.</p>
</div>
</div>
</dd>
</dl>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="ccr-settings.html">« Cross-cluster replication settings</a>
</span>
<span class="next">
<a href="modules-fielddata.html">Field data cache settings »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
